草庐IT

memory - 确定虚拟内存的页表大小

全部标签

ruby - ruby 如何完成这项任务(Ruby 中不区分大小写的字符串搜索和替换)?

我在用Ruby替换字符串时遇到一些问题。我的原文:人之所为不如兽之所为。我想替换为:==What==humandoesisnotlike==what==animaldoes.我在使用gsub时遇到区分大小写的问题。(例如,什么,什么)我想保留原始文本。有什么解决办法吗? 最佳答案 如果我理解正确,这就是你想要做的:puts"Whatthehumandoesisnotlikewhatanimaldoes.".gsub(/(what)/i,'==\1==')输出==人类所做的==不同于==动物所做的。

ruby - 如何在 Ruby 中使用 RegEx 更改字符串中字母的大小写

假设我有一个字符串:“hEY”我想把它转换成“嘿”string.gsub!(/([a-z])([A-Z]+)/,'\1'.upcase)这是我的想法,但是当我在gsub方法中使用它时,upcase方法似乎什么都不做。这是为什么?编辑:我想出了这个方法:string.gsub!(/([a-z])([A-Z]+)/){|str|str.downcase!.capitalize!}有没有办法在正则表达式中做到这一点?我不太明白'\1''\2'的意思。那是反向引用吗?这是如何工作的 最佳答案 @sawa有简单的答案,你已经用另一种机制编辑了

ruby-on-rails - 如何确定 Rails Assets 管道中给定 Assets 的 MD5 摘要?

我正在RubyonRails3.1项目中编写一个富含Javascript的应用程序,并将Handlebars用于我的JS模板框架。我正在尝试找出一种方法,将Assets的MD5摘要(在生产中的Assets预编译期间生成)动态附加到我的Handlebars模板内的标签中。我希望有一个以Assets路径为键、以MD5摘要为值的散列,但我一直找不到。一个理想的解决方案是将哈希值从Ruby传递到Javascript并定义一个Handlebars助手,它会自动将MD5摘要附加到Assets的“src”属性。有没有人尝试过做类似的事情?必须有一种方法可以在Rails中使用Javascript模板并

ruby - 为什么我无法确定我的 ruby​​ 安装版本?

当我运行ruby-version时,我得到:ruby1.8.7(2012-02-08patchlevel358)[universal-darwin11.0]-e:1:undefinedlocalvariableormethod`rsion'formain:Object(NameError)有什么问题吗? 最佳答案 使用ruby​​-v或ruby​​--version。它正在将-version解析为rsion。这两个都行。计算破折号的数量:ruby-vruby--version当您提供带有“version”的单个破折号时,Ruby会看

ruby-on-rails - 如何按日期对象确定上周的范围

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Scopingdateattributeforthisweek?我正在尝试确定本周所有产品的范围,因此它应该显示一周中任何一天之前的所有产品。classProduct1.week.ago)endcreate_table:productsdo|t|t.date:purchase_dateendend这段代码在View中没有呈现任何东西,所以我需要更正什么?回答出于某种原因,我不得不添加advance(:days=>-1)以便也检索星期一。不过,您可能不必这样做。defself.last_weekwhere(:p

ruby-on-rails - 编写 gem 时如何测试虚拟 Rails 应用程序?

我正在编写一个与Rails集成的gem,我希望能够在我的gem的测试套件中使用rspec测试一个虚拟应用程序。当我测试我的虚拟rails应用程序是否通过加载/几个模块时,问题出现了rspec规范/integration/rails/load_path_spec.rb到目前为止,这是我所拥有的:#spec/support/rails_app/config/environment.rb#LoadtheRailsapplication.requireFile.expand_path('../application',__FILE__)#Loadthegemrequire'skinny_con

ruby - 如何确定我的流程是否正在交互式运行?

是否有一种标准(ish)POSIX方法来确定我的进程(我现在正在将其编写为Ruby脚本;但我对多种环境感到好奇,包括Node.js和ISOC命令行应用程序)正在交互式终端中运行,而不是cron,或者从其他工具执行,或者……等等。具体来说,我需要在某些情况下获取用户输入,如果确定不可能(即由cron运行),我需要致命失败。我可以使用环境变量来做到这一点,但如果可以的话,我更喜欢更标准的东西。 最佳答案 我一直使用$stdout.isatty来检查这一点。其他方法可能包括检查ENV['TERM']的值或利用ruby-terminfoge

ruby - 如何在低内存系统上使用 RVM 编译 ruby​​?

rvminstall1.9.3导致make.log中的错误:...compiling./enc/trans/emoji_sjis_docomo.ccompiling./enc/trans/emoji_sjis_kddi.cgcc:internalcompilererror:Killed(programcc1)gcc:internalcompilererror:Killed(programcc1)gcc:internalcompilererror:Killed(programcc1)Pleasesubmitafullbugreport,withpreprocessedsourceifap

ruby - 将数组填充到一定大小

可能有一种更有效、更像Ruby的方法来做到这一点:#Padarraytosizenbyaddingx's.Don'tdoanythingifn你有什么建议? 最佳答案 由于我对问题的误解而被编辑。我的答案的前一个版本是从右侧填充的,但问题是要求从左侧填充。我相应地更正了它。这是由于命名约定。ljust、rjust是String的内置方法,我将该约定扩展到Array,但这对应于padright和padleft,分别在问题的术语中。破坏性方法defpadleft!(a,n,x)a.insert(0,*Array.new([0,n-a.l

ruby - 如何确定一条记录是迭代中的第一条/最后一条?

这件事让我思考了好几次。在这个例子中,我有一个数组,这个数组有10个值,应该用逗号分隔,但在最后一个值之后不应该有逗号,所以我使用了一个计数器:data=["john","james","henry","david","daniel","jennifer","ruth","penny","robin","julia"]counter=0count=data.sizesentence=String.newdata.eachdo|name|ifcounter==(count-1)sentence+=nameelsesentence+="#{name},"endcounter+=1end但这